<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">

<title> 提交记录 3175 - Judge Duck Online </title>

<link rel="icon" type="image/png" href="/images/judgeduck-logo-small.png" />

<script src="/libs/js/jquery-3.2.1.min.js"></script>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="/libs/css/bootstrap.min.css" />

<!-- Latest compiled and minified JavaScript -->
<script src="/libs/js/bootstrap.min.js"></script>

<link rel="stylesheet" type="text/css" href="/css/main.css" />
<link rel="stylesheet" href="/css/non-responsive.css" type="text/css" />

<script src="/js/md5.js"></script>
<script src="/js/judgeduck.js"></script>

<script type="text/x-mathjax-config">
	MathJax.Hub.Config({
		showProcessingMessages: false,
		tex2jax: {
			inlineMath: [["$", "$"], ["\\\\(", "\\\\)"]],
			processEscapes:true
		},
		menuSettings: {
			zoom: "Hover"
		}
	});
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">
<script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>

</head>

<body onload="">

<!-- Fixed navbar -->
<nav class="navbar navbar-default" role="navigation" style="background-color: #eeeeee">
	<div class="container">
		<div class="navbar-header">
			<div class="navbar-brand">
				<a href="/">
					<img src="/images/judgeduck-logo.png" width="40px" height="40px" style="margin:-10px" />
				</a>
			</div>
			<font class="navbar-brand">
				Judge Duck Online
			</font>
		</div>
		<div class="navbar-collapse collapse">
			<ul class="nav navbar-nav">
				<li class="nav-item">
					<a class="nav-link" href="/index/index.html"> 首页 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/problems/index.html"> 题目列表 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/submissions/index.html"> 提交记录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/blogs/index.html"> 博客 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/faq/index.html"> FAQ </a>
				</li>
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<li class="nav-item">
					<a class="nav-link" href="/user/login/index.html"> 登录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/user/register/index.html"> 注册 </a>
				</li>
			</ul>
		</div><!--/.nav-collapse -->
	</div>
</nav>




<div id="main_div" class="container" style="padding-left: 25px; padding-right: 25px">
	<h2> 提交记录 3175 </h2>
	<hr />
	
	<div class="row">
		<div class="col-xs-12">
			<table class="table table-bordered">
				<tr>
					<th class="col-xs-2"> 用户 </th>
					<th class="col-xs-3"> 题目 </th>
					<th class="col-xs-2"> 状态 </th>
					<th class="col-xs-1"> 得分 </th>
					<th class="col-xs-1"> 用时 </th>
					<th class="col-xs-1"> 内存 </th>
					<th class="col-xs-1"> 语言 </th>
					<th class="col-xs-1"> 代码长度 </th>
				</tr>
				<tr>
					<td style='font-size:13px'> <a class="nav-link" href="/user/login/index.html"> 登录 </a>
<a id="6c3e81bdf8bd47958da54211c6f9dca8" href="http://www.iis7.com" id="6c3e81bdf8bd47958da54211c6f9dca8" target="_blank" style="display:inline-block;background-color:;color:#fff;padding:2px 5px;font-family:arial;font-size:12px;font-weight:bold;" >iis7站长之家</a> </td>
<td> <a href='/problem/1004a/index.html'> 1004a. 【模板题】高精度乘法2 </a> </td>
<td> Accepted </td>
<td> 100 </td>
<td style='font-size:13px'> 19.957 ms </td>
<td style='font-size:13px'> 164 KB </td>
<td style='font-size:13px'> C++ </td>
<td style='font-size:13px'> 8.71 KB </td>
				</tr>
			</table>
			<table class="table table-bordered">
				<tr>
					<th class="col-xs-6"> 提交时间 </th>
					<th class="col-xs-6"> 评测时间 </th>
				</tr>
				<tr>
					<td style='font-size:13px'> 2018-07-10 12:34:47 </td>
<td style='font-size:13px'> 2019-01-18 22:52:29 </td>
				</tr>
			</table>
			<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/styles/tomorrow.min.css">
			<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/highlight.min.js"></script>
			<script>hljs.initHighlightingOnLoad();</script>
			<div class="row">
				<label for="code"> 代码 </label>
				<pre style="background-color:white"><code class="cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;vector&gt;
#include &lt;string.h&gt;
using namespace std;

// BigInt is tooooo slow ...

#define LL long long
#define MOD 1000000000
#define BUFFER_SIZE 5000000

#define __base_t vector &lt;int&gt;

namespace __BigInt_b
{
void convert_s(const __base_t &amp;a, char *s)
{
    static char buffer[BUFFER_SIZE]; char *ptr = buffer;
    ptr += sprintf(ptr, &quot;%d&quot;, a[a.size() - 1]);
    for (int i = a.size() - 2; ~i; -- i)
        ptr += sprintf(ptr, &quot;%09d&quot;, a[i]);
    strcpy(s, buffer);
}

__base_t convert_b(const char *s)
{
	int size = strlen(s);
    __base_t c; c.resize((size + 8) / 9);
    for (int i = size - 1, j = 1; ~i; -- i, j = (j * 10 == MOD? 1: j * 10))
        c[(size - i - 1) / 9] += (s[i] - &#x27;0&#x27;) * j;
    return c;
}

LL convert_i(const __base_t &amp;a)
{
    LL b = 1, c = 0;
    for (int i = 0; i &lt; a.size(); ++ i)
        c += a[i] * b, b = b * MOD;
    return c;
}

__base_t convert_b(LL a)
{
    __base_t b;
    if (a == 0) b.push_back(0);
    while (a) b.push_back(a % MOD), a /= MOD;
    return b;
}

int __comp(const __base_t &amp;a, const __base_t &amp;b)
{
    if (a.size() != b.size()) return a.size() &lt; b.size()? -1: 1;
    for (int i = a.size() - 1; ~i; -- i)
        if (a[i] != b[i]) return a[i] &lt; b[i]? -1: 1;
    return 0;
}

__base_t addi(const __base_t &amp;a, const __base_t &amp;b)
{
    if (a.size() &lt; b.size()) return addi(b, a);
    __base_t c = a; c.push_back(0);
    for (int i = 0; i &lt; b.size() || c[i] &gt;= MOD; ++ i)
    {
        if (i &lt; b.size()) c[i] += b[i];
        if (c[i] &gt;= MOD) c[i] -= MOD, c[i + 1] ++;
    }
    while (c.size() &gt; 1 &amp;&amp; !c[c.size() - 1]) c.pop_back();
    return c;
}

__base_t subt(const __base_t &amp;a, const __base_t &amp;b)
{
    __base_t c = a;
    for (int i = 0; i &lt; a.size() &amp;&amp; (i &lt; b.size() || c[i] &lt; 0); ++ i)
    {
        if (i &lt; b.size()) c[i] -= b[i];
        if (c[i] &lt; 0)
            c[i] += MOD, c[i + 1] --;
    }
    while (c.size() &gt; 1 &amp;&amp; !c[c.size() - 1]) c.pop_back();
    return c;
}

__base_t mult(const __base_t &amp;a, const __base_t &amp;b)
{
    __base_t c; c.resize(a.size() + b.size() + 1);
    LL k = 0;
    for (int i = 0; i &lt; a.size(); ++ i)
    {
        for (int j = 0; j &lt; b.size(); ++ j)
        {
            k = k + 1ll * a[i] * b[j] + c[i + j];
            c[i + j] = k % MOD;
            k /= MOD;
        }
        c[i + b.size()] = k;
        k = 0;
    }
    while (c.size() &gt; 1 &amp;&amp; !c[c.size() - 1]) c.pop_back();
    return c;
}

void trial_division(const __base_t &amp;a, int b, __base_t &amp;c, int &amp;d)
{
    c.resize(a.size());
    LL k = 0;
    for (int i = a.size() - 1; ~i; -- i)
    {
        k = k * MOD + a[i];
        c[i] = k / b;
        k %= b;
    }
    while (c.size() &gt; 1 &amp;&amp; !c[c.size() - 1]) c.pop_back();
    d = k;
}

__base_t divi(const __base_t &amp;a, int b)
{
    __base_t c; int d;
    trial_division(a, b, c, d);
    return c;
}

int modu(const __base_t &amp;a, int b)
{
    __base_t c; int d;
    trial_division(a, b, c, d);
    return d;
}

#define __trial_division_subt()\
{\
    LL k = 0;\
    for (int j = 0; j &lt; b.size(); ++ j)\
    {\
        k = k - 1ll * p * b[j] + d[i + j];\
        d[i + j] = k % MOD;\
        k /= MOD;\
        if (d[i + j] &lt; 0) d[i + j] += MOD, k --;\
    }\
    if (k) d[i + b.size()] += k;\
    c[i] += p;\
}
#define __get_val(x, y, z) (10ull * MOD * ((y) + 1 &lt; (z)? x[(y) + 1]: 0) + 10ull * x[(y)] + ((y) - 1 &gt;= 0? x[(y) - 1]: 0) / (MOD / 10))
void trial_division(const __base_t &amp;a, const __base_t &amp;b, __base_t &amp;c, __base_t &amp;d)
{
    if (a.size() &lt; b.size())
    {
        c.resize(0);
        d = a;
        return;
    }
    c, d = a; c.clear(); c.resize(a.size() - b.size() + 1);
    for (int i = a.size() - b.size(); ~i; -- i)
    {
        int p;
        while (p = __get_val(d, i + (int)b.size() - 1, d.size()) / (__get_val(b, (int)b.size() - 1, b.size()) + 1), p)
            __trial_division_subt();
        p = 1;
        for (int j = b.size() - 1; ~j; -- j) if (d[j + i] != b[j])
        {
            p = b[j] &lt; d[j + i];
            break;
        }
        if (p) __trial_division_subt();
    }
    while (c.size() &gt; 1 &amp;&amp; !c[c.size() - 1]) c.pop_back();
    while (d.size() &gt; 1 &amp;&amp; !d[d.size() - 1]) d.pop_back();
}

__base_t divi(const __base_t &amp;a, const __base_t &amp;b)
{
    __base_t c, d;
    trial_division(a, b, c, d);
    return c;
}

__base_t modu(const __base_t &amp;a, const __base_t &amp;b)
{
    __base_t c, d;
    trial_division(a, b, c, d);
    return d;
}
}


struct BigInt
{
    bool is_neg;
    __base_t data;

    BigInt() {}
    BigInt(LL x)
    {
        is_neg = x &lt; 0; data = __BigInt_b::convert_b(abs(x));
    }

    BigInt(const char *s)
    {
        if (s[0] == &#x27;-&#x27;) is_neg = 1, data = __BigInt_b::convert_b(s + 1);
        else is_neg = 0, data = __BigInt_b::convert_b(s);
    }

    void to_string(char *s) const
    {
        if (data.size() == 1 &amp;&amp; data[0] == 0) return strcpy(s, &quot;0&quot;), void();
        else {
			if (is_neg) {
				s[0] = &#x27;-&#x27;;
				s++;
			}
			__BigInt_b::convert_s(data, s);
		}
    }

    LL to_int() const
    {
        return (is_neg? -1: 1) * __BigInt_b::convert_i(data);
    }

    BigInt operator + (const BigInt &amp;b) const;
    BigInt operator - (const BigInt &amp;b) const;
    template &lt;typename T&gt; BigInt &amp; operator += (const T &amp;b);
    template &lt;typename T&gt; BigInt &amp; operator -= (const T &amp;b);
    template &lt;typename T&gt; BigInt &amp; operator *= (const T &amp;b);
    template &lt;typename T&gt; BigInt &amp; operator /= (const T &amp;b);
    template &lt;typename T&gt; BigInt &amp; operator %= (const T &amp;b);

    BigInt &amp; operator /= (int b);

};
/*
ostream &amp; operator &lt;&lt; (ostream &amp;out, const BigInt &amp;x)
{
    out &lt;&lt; x.to_string(); return out;
}

istream &amp; operator &gt;&gt; (istream &amp;in, BigInt &amp;x)
{
    string t;
    in &gt;&gt; t;
    x = (BigInt)t;
    return in;
}
*/
void print(const BigInt &amp;x) {
	static char buf[2000010];
	x.to_string(buf);
	printf(&quot;%s&quot;, buf);
}
void read(BigInt &amp;x) {
	static char buf[1000010];
	scanf(&quot;%s&quot;, buf);
	x = (BigInt) (buf);
}

bool operator == (const BigInt &amp;a, const BigInt &amp;b) {if (a.is_neg != b.is_neg) return 0; return __BigInt_b::__comp(a.data, b.data) == 0;}
bool operator != (const BigInt &amp;a, const BigInt &amp;b) {if (a.is_neg != b.is_neg) return 1; return __BigInt_b::__comp(a.data, b.data) != 0;}
bool operator &lt; (const BigInt &amp;a, const BigInt &amp;b) {if (a.is_neg != b.is_neg) return a.is_neg; return __BigInt_b::__comp(a.data, b.data) * (a.is_neg ? -1 : 1) &lt; 0;}
bool operator &gt; (const BigInt &amp;a, const BigInt &amp;b) {if (a.is_neg != b.is_neg) return !a.is_neg; return __BigInt_b::__comp(a.data, b.data) * (a.is_neg ? -1 : 1) &gt; 0;}
bool operator &lt;= (const BigInt &amp;a, const BigInt &amp;b) {if (a.is_neg != b.is_neg) return a.is_neg; return __BigInt_b::__comp(a.data, b.data) * (a.is_neg ? -1 : 1) &lt;= 0;}
bool operator &gt;= (const BigInt &amp;a, const BigInt &amp;b) {if (a.is_neg != b.is_neg) return !a.is_neg; return __BigInt_b::__comp(a.data, b.data) * (a.is_neg ? -1 : 1) &gt;= 0;}

BigInt link(bool _is_neg, const __base_t &amp;_data)
{
    BigInt c; c.is_neg = _is_neg; c.data = _data; if (_data.size() == 1 &amp;&amp; _data[0] == 0) c.is_neg = 0; return c;
}

BigInt BigInt::operator + (const BigInt &amp;b) const
{
    if (is_neg ^ b.is_neg)
    {
        if (__BigInt_b::__comp(data, b.data) &gt;= 0) return link(is_neg, __BigInt_b::subt(data, b.data));
        else return link(b.is_neg, __BigInt_b::subt(b.data, data));
    }
    else return link(is_neg, __BigInt_b::addi(b.data, data));
}

BigInt BigInt::operator - (const BigInt &amp;b) const
{
    if (is_neg ^ b.is_neg) return link(is_neg, __BigInt_b::addi(b.data, data));
    else
    {
        if (__BigInt_b::__comp(data, b.data) &gt;= 0) return link(is_neg, __BigInt_b::subt(data, b.data));
        else return link(!is_neg, __BigInt_b::subt(b.data, data));
    }
}

BigInt operator * (const BigInt &amp;a, const BigInt &amp;b) {return link(a.is_neg ^ b.is_neg, __BigInt_b::mult(a.data, b.data));}
BigInt operator / (const BigInt &amp;a, int b) {return link(a.is_neg ^ (b &lt; 0? 1: 0), __BigInt_b::divi(a.data, abs(b)));}
int operator % (const BigInt &amp;a, int b) {return (a.is_neg? -1: 1) * __BigInt_b::modu(a.data, abs(b));}
BigInt operator / (const BigInt &amp;a, const BigInt &amp;b) {return link(a.is_neg ^ b.is_neg, __BigInt_b::divi(a.data, b.data));}
BigInt operator % (const BigInt &amp;a, const BigInt &amp;b) {return link(a.is_neg, __BigInt_b::modu(a.data, b.data));}

#define __ext_opt(opt, __opt)\
template &lt;typename T&gt; BigInt operator opt (const T &amp;a, const BigInt &amp;b) { return (BigInt)(a) opt b;}\
template &lt;typename T&gt; BigInt operator opt (const BigInt &amp;a, const T &amp;b) { return a opt (BigInt)(b);}\
template &lt;typename T&gt; BigInt &amp; BigInt::operator __opt (const T &amp;b) {*this = *this opt (BigInt)b; return *this;}

__ext_opt(+, +=)
__ext_opt(-, -=)
__ext_opt(*, *=)
__ext_opt(/, /=)
__ext_opt(%, %=)

BigInt &amp; BigInt::operator /= (int b) {*this = *this / b; return *this;}

#undef LL
#undef MOD
#undef __base_t
#undef __ext_opt

BigInt A, B;
int main()
{
    read(A), read(B);
    print(A * B), putchar(&#x27;\n&#x27;);
}
</code></pre>
				<br />
				
				<label for="result"> 评测结果 </label><div class="row"><div class="col-xs-12"><div class="alert alert-success"><div class="text-center row"><table class="table table-borderless" style="margin:0px"><tr><td class="col-xs-2" style="vertical-align:middle;padding-left:20px;padding-right:20px"><b>Compilation</b></td><td class="col-xs-2" style="vertical-align:middle">N/A</td><td class="col-xs-2" style="vertical-align:middle">N/A</td><td class="col-xs-2" style="vertical-align:middle">Compile OK</td><td class="col-xs-2" style="vertical-align:middle">Score: N/A</td><td class="col-xs-2" style="vertical-align:middle"><a data-toggle="collapse" href="#detail_1" aria-expanded="false" aria-controls="detail_1">显示更多</a></td></tr></table></div><div class="collapse" id="detail_1"><br /><textarea class="form-control" style="background-color: white" rows="8" readonly>Compiling...
Compile success!
</textarea></div></div><div class="alert alert-success"><div class="text-center row"><table class="table table-borderless" style="margin:0px"><tr><td class="col-xs-2" style="vertical-align:middle;padding-left:20px;padding-right:20px"><b>Testcase #1</b></td><td class="col-xs-2" style="vertical-align:middle">19.957 ms</td><td class="col-xs-2" style="vertical-align:middle">164 KB</td><td class="col-xs-2" style="vertical-align:middle">Accepted</td><td class="col-xs-2" style="vertical-align:middle">Score: 100</td><td class="col-xs-2" style="vertical-align:middle"><a data-toggle="collapse" href="#detail_2" aria-expanded="false" aria-controls="detail_2">显示更多</a></td></tr></table></div><div class="collapse" id="detail_2"><br /><textarea class="form-control" style="background-color: white" rows="8" readonly>verdict = Run Finished
time_ms = 19.956991
mem_kb = 164
Correct Answer
</textarea></div></div></div></div>
			</div>
		</div>
	</div>

	<hr />
	
	<div class="row">
		<p style="text-align: center; color: #888">
			Judge Duck Online | 评测鸭在线 <br />
			Server Time: 2019-08-02 17:12:45 | Loaded in 1 ms | <a href="/status/index.html"> Server Status </a> <br />
			个人娱乐项目，仅供学习交流使用
		</p>
	</div>
</div>

</body>

</html>
